Conversation
|
|
|
这个 auto-route 要加的话,mac 和 linux 肯定也会适配的,不用起名 winRoute 还要实现自动给出站没填 interface 的加上 interface,不过有同时插网线、连 wifi 的情况,先判断哪个是默认的? |
这种东西肯定得加的,因为内核里 DoH 等自动请求也得绑个 interface 来绕过 tun 不然回环了, |
|
auto-route 是作为 bool?我认为也要有一个类似 route 的可以指定 ip cidr interface 当初想的是不手动指定就取第一个非 tun index 的传到 ctx 里 |
|
直接用 RegisterDialerController 注入一个sockopt绑定接口就是了 doh什么的全走的这个接口 很久之前就考虑过这个问题了 |
|
也可以,反正 setsocketint 各大 os 都有,不用分 os |
|
Xray 启动时探测一下默认接口吧,auto-route 可以保留现在的配置格式,这样挺好的, |
|
@Fangliding echForceQuery 配置项还有必要留着吗,开个 PR 删了吧 |
|
之前有一个给伊朗无服务器用的莫名其妙的half 也毙了吗 |
|
话说隔壁两家的 TUN 实现的 auto-redirect 是不是拿 /0 减掉 auto-redirect 来算路由表 |
|
|
|
那东西我也觉得没用 用处太边缘而且他自己好像也不更了 好像他扔出来的模板都没那功能 纯ex人 |
|
ECH any outer sni 这个前几天在群里讨论过,是不是现在的 uTLS 实现不了来着? |
|
|
可以 主要是CF不支持 做了也没用 自建ECH的情况下outer完全可以自己填 |
那就先加个自定义 outer sni 的功能吧,感觉 echConfigList 塞不下了,按之前说的把 sni 改成 outer.com+inner.com 吧 主要是正好也能把旧的客户端给 break 掉,这在以后全面普及 any outer sni 后会有帮助 |
|
random outer 哪怕是IETF最后做出来也是另一套逻辑 我稍微看了一下那个ppt 和现在做一个土制的的盖过去肯定是不一样的 还是那句话这东西八字没一撇 |
|
还有我说的自建ECH可以自己填意思是生成 ECH Config 的时候 outer 可以自己写 然后就原生apply进去了 不需要任何新功能 |
|
有点难以想象“另一套逻辑”是啥逻辑,服务端定义可选 SNI 范围? |
|
可能就是因为这些乱七八糟的原因才如此缓慢吧 我第一次看到这东西好像得是两年前24年那会了 |
|
想了一下有可能比如加了个额外的签名验证尝试以实现同 IP 区分多服务端?虽然 outer sni 一样, |
|
那先不管了,@Fangliding 他这个 auto-route 的话得把 REALITY 仓库 record_detect.go 和 VLESS fallbacks 改一下,你看看 |
|
这都要算吗 反正tun也就客户端用用应该无所谓吧 singbox clash那些带tun的都没见管 |
|
|
|
|
先不管这个,先实现个 Xray 启动时自动探测出默认 interface 并应用到核心发出的连接吧, 还有你看下隔壁两家的 auto-redirect 是不是拿 /0 减掉、自动计算路由表,如果是的话那它和 auto-route 的优先级?
对了还需要实现个指定 TUN 的 IPv4 & IPv6,TUN 这块就差不多了 |
Although the internet is still down and only DNS or IP-Spoofing based methods work in Iran, they opened some Cloudflare IPs for some White SNIs for a few hours (They've done this a few times in the last month and closed it again.), and it is clear that they are implementing a new system. "cloudflare-ech.com" was not in their whitelist, also fragments method didn't work, they simply close the connection when they can't read the sni. but i tested some ip/tcp-header-manipulation methods and it can bypass this restriction: method 1 (simplest one): send a white-sni-client-hello-packet with low ip-ttl before main-clienthello-packet: because GFW sees this packet and interprets it as a white-sni-clienthello-packet , so allow other packets without checking, but this packet does not reach to the cloudflare servers, so you can send your main-blocked-sni-clienthello-packet later !!! Apart from method 1, I successfully tested 2 other methods (related to tcp-header) and with all of them I was able to successfully connect to cloudflare cdn. /// It's time to prioritize raw-sockets-outbounds. |
|
auto-redirect 是什么需求,我还在看 linux go 里怎么实现路由,
|
|
update,更新几点信息
func main8() {
var builder netipx.IPSetBuilder
builder.AddPrefix(netip.MustParsePrefix("0.0.0.0/0"))
builder.RemovePrefix(netip.MustParsePrefix("192.168.1.1/32"))
result, _ := builder.IPSet()
for _, p := range result.Prefixes() {
fmt.Println(p)
}
}关于这个 pr,将会侧重在 windows 上的 autoRedirect 以及 tun 的 defaultInterface, |
|
|
|
咱们这边能不能考虑一下Windows平台下,开热点的情况啊? |
如果合并了你可以试试,现在没有 strictroute 和 redirect,对系统入侵相对较小 |
|
那localdns那里你觉得该怎么改? |
是这里说的吧,但之前那个 pr 好像也没 break?
|
那个接口大抵没人用 只是尽量不改 这个是真要用的 那么多dialer包装就是为了这个可以正常用 比如v2rayng就要这个hook掉dialer来绕过自己 |
|
应该没啥了,按照描述给的配置可以直接跑起来 还有一个就是如果默认出站的 address 是域名且 protocol 是 udp 类可能需要显示指定 streamSettings.sockopt.domainStrategy: UseIPv4v6 因为 |
|
顺带发现先关 stack 再关 tun 在 windows 仍有 crash 现象,在 writepacket,加了个锁暂时先修了 |
|
写 auto 是自动,其他就指定,因为自动只是取第一个非tun非loopback的网卡,可能取到的不是希望的
如果端口是 137 那是没有默认 myGatewayIPs 系统发来的 NetBIOS 探测包,分配 ipv4 用的 好像仅 windows,可以按接口配置 dns, |
有没有判断一下有没有实际 IP 地址,有些网卡虽然存在但没插线/没连接就没 IP 地址 这个改名叫 autoOutboundsInterface 吧,autoRouteIPs 存在时默认值 "auto",否则默认不生效
刚拿 |
多增加了两个条件,up flag 和 len(addrs) > 0
目前只是改 infra 的, |
|
proto 都改,改一些名,代码顺序: DNS 不配置时是什么行为?改成 udp://1.1.1.1:53 这种形式?DHCP 支持自定义端口吗?因为我看手动设的甚至可以 DoH
|
据我观察是走默认 dns,但因为国内 dns 可能屏蔽境外 ip 导致连接不通
接口好像只开放了 ip,连 port 都没有,倒是有个 suffix 匹配域名走 dns 的参数,doh 通过劫持 dns 实现吧
mtu 我设置的时候也感觉怪怪的, 不过也就 win linux darwin 可以设置,移动端只有个 fd,可能还没权限 |
那这里就保持现有设计吧,只填 IP,如果想搞骚操作的话可以随便填个然后用 Xray 劫持,
趁没啥 GUI 支持,break 一下改成数组吧,若只有一个成员就是 v4v6 相同,若有两个成员就是第一个是 v4
另外有两个名字你忘改了,改一下,然后应该可以合了 |
这就要提到 win 上著名的智能多宿主解析了,组策略 -> 管理模板 -> 网络 -> DNS 客户端 -> 禁用智能多宿主名称解析,
done
哦哦,原来上面的名字 infra 也改吗, |

{ "log": { "loglevel": "debug" }, "inbounds": [ { "protocol": "tun", "settings": { "name": "xray0", "mtu": [1500, 1280], "gateway": [ "10.0.0.1/16", "fc00::1/64" ], "dns": [ "1.1.1.1", "8.8.8.8" // "2606:4700:4700::1111", // "2001:4860:4860::8888" ], "userLevel": 0, "autoRoutingTable": [ "0.0.0.0/0", "::/0" ] // ,"autoOutboundsInterface": "auto" } } ], "outbounds": [ { "protocol": "freedom" } ] }